home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu634.dms / pu634.adf / GENIES / ZoomWindow.pdrx < prev    next >
Text File  |  1994-09-06  |  4KB  |  154 lines

  1. /*
  2. Copyright StarTeck 1992. All rights reserved. 
  3.  
  4. This Genie will name zoom positions.
  5. Just answer prompts...
  6. */
  7. trace off
  8.  
  9. signal on error
  10. signal on syntax
  11.  
  12. call pdm_AutoUpdate(0)
  13.  
  14. cr = '0a'x
  15. datafile = 'datafile'
  16. filename = 'sys:S/ZoomList.STk'        /* load data file varable*/
  17. filename2 = 'sys:S/ZoomList2.STk'        /* load data file varable*/
  18. windowname. = ''
  19. windownames = ''
  20. zoomdata. = ''
  21. tempfile = 'tempfile'
  22. count = 0
  23.  
  24.  
  25. if open(datafile, filename, 'r') then do
  26.    if datafile = '' then exit_msg(filename' is empty...')
  27.  
  28.    do while ~eof(datafile)      /* do until end of file */
  29.       line = readln(datafile)    /*  read line of file */
  30.       parse var line name.count ',' zoomdata.count
  31.  
  32.       if count = 0 then
  33.          windownames = name.count
  34.       else do
  35.          if ~(eof(datafile)) then
  36.              windownames = windownames ||cr|| name.count
  37.          end /* else */
  38.          
  39.       count = count + 1
  40.       end /* do while */
  41.    end /* if then do */
  42. else 
  43.    exit_msg('Can not find 'filename)
  44.    
  45. call close(datafile)  
  46. count = count - 1
  47.  
  48.  
  49. userchoice = pdm_selectFromList('Select window name...',30,count,2,windownames)
  50.    if userchoice = '' then exit_msg()
  51.  
  52. select
  53.  
  54.     when userchoice = 'DEFINE NEW WINDOW' then do
  55.        /* create a file */
  56.        if ~(open(tempfile,filename2, 'w')) then
  57.           call exit_msg('Can not find ""sys:s/"" dir...') 
  58.        else do
  59.           do i = 0 to (count - 1)
  60.              call writeln(tempfile,name.i','zoomdata.i)
  61.              end /* do */
  62.  
  63.           UserZoomArea = pdm_clickarea(Drag rectangle with mouse...)
  64.           if UserZoomArea = '' then exit_msg()
  65.  
  66.           parse var UserZoomArea TopX TopY BotX BotY
  67.           width  = BotX - TopX
  68.           width  = trunc(width,4)
  69.           height = BotY - TopY
  70.           height  = trunc(height,4)
  71.           centerX = TopX + (width / 2)
  72.           centerX = trunc(centerX,4)
  73.           centerY = TopY + (height / 2)
  74.           centerY = trunc(centerY,4)
  75.    
  76.           WindowName = pdm_getUserText(30,'Input WINDOW NAME')
  77.           if WindowName = '' then exit_msg()
  78.   
  79.           call writeln(tempfile,Windowname','centerX','centerY','Width)
  80.           call close(datafile)  
  81.           call close(tempfile)  
  82.           address command 'copy >nil SYS:S/zoomlist2.STk sys:s/zoomlist.STk'
  83.           address command 'delete >nil SYS:S/zoomlist2.STk'
  84.  
  85.           call pdm_zoomscreen(centerX,centerY,Width)
  86.  
  87.            end /* else */
  88.        end /* when */
  89.  
  90.  
  91.    when userchoice = 'DELETE A WINDOW' then do
  92.       parse var windownames scrap1 (cr) scrap2 (cr) windownamesdelete
  93.       userchoice = pdm_selectFromList('Select window name...',30,count - 2,2,windownamesdelete)
  94.       if userchoice = '' then exit_msg()
  95.       /* create a file */
  96.       if open(tempfile,filename2, 'w') then do
  97.  
  98.          do i = 0 to count - 1
  99.             if ~(userchoice = name.i) then
  100.                call  writeln(tempfile,name.i','zoomdata.i)
  101.             end /* do */
  102.  
  103.          call close(datafile)  
  104.          call close(tempfile)  
  105.          address command 'copy >nil sys:s/zoomlist2.STk sys:s/zoomlist.STk'
  106.          address command 'delete >nil sys:s/zoomlist2.STk' 
  107.          end /* do */
  108.       else
  109.          call exit_msg('Can not find ""sys:s/"" dir...') 
  110.   
  111.       end /* when */
  112.  
  113.  
  114.    otherwise do
  115.       do i = 2 to count 
  116.          if userchoice = name.i then do
  117.             parse var zoomdata.i centerX ',' centerY ',' width 
  118.             call pdm_zoomscreen(centerx,centery,width)  
  119.             end /* if then do */
  120.          end /* do */ 
  121.       end /* otherwise */
  122.  
  123.    end /* select */
  124.  
  125.  
  126. call exit_msg()
  127.  
  128.  
  129. error:
  130. syntax:
  131. do
  132.    exit_msg("Genie failed due to error: "errortext(rc))
  133. end
  134. return 
  135.  
  136.  
  137. writeln: procedure
  138.    len = 'WRITELN'(arg(1), arg(2))
  139.    if len ~= length(arg(2)) + 1 then do
  140.       say "Error on write to file "arg(1) " . Aborting script..."
  141.       call close(arg(1))
  142.       exit
  143.       end
  144. return 
  145.  
  146. exit_msg:
  147. do
  148.     parse arg message
  149.     if message ~= '' then call pdm_Inform(0, message)
  150.     call pdm_AutoUpdate(1)
  151.     call close(datafile)  
  152.     call close(tempfile)
  153.     exit
  154. end